package top.frsf.rpc.loadbalance;

import top.frsf.rpc.entity.ServiceInstance;
import top.frsf.rpc.enums.LoadBalanceEnum;

import java.util.List;

/**
 * 负载均衡策略接口
 *
 * @author He Kuntao
 * @since 2025/7/18 10:00
 */
public interface LoadBalance {

    /**
     * 选择一个服务实例
     *
     * @param instances 服务实例列表
     * @return 服务实例
     */
    ServiceInstance select(List<ServiceInstance> instances);

    /**
     * 获取负载均衡策略枚举
     *
     * @return 负载均衡策略枚举
     */
    LoadBalanceEnum getLoadBalanceEnum();
}
